/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package hello;

/**
 *
 * @author dirk
 */

public class CreateGameWorld
    {
    // GameWorld
    private GameWorld game = new GameWorld();

    // Create room objects*************************************************************************************
    //From word -> Excell helped with formatting -> notepad++ -> http://www.prettyprinter.de to here
    //***********************************************************************************************************
     private Location l1 = new Location ("Tip of the Mountain." ,"You find yourself on the top of a misty mountain. How did you get here? It seems like you are wearing some kind of Ski outfit, but you can't remember going on holiday." ,null ,null ,null );
    private Location l2 = new Location ("Warning sign." ,"There is an old rusted Warning sign in the snow: \"Beware of the Abominable Snowman, keep goat meat on you at all time.\"" ,null ,null ,null );
    private Location l3 = new Location ("Ski hut." ,"A warm ski hut... but wait, what's inside? Oh no! Some kind of massacre occurred here. An old skier's body is laying on the floor with a huge gap in it." ,null ,null ,null );
    private Location l4 = new Location ("View" ,"What a wonderful view! There is a rainbow to the east. Wait; is there something shiny at the end of the rainbow? It doesn't look like there is anything else but trees down the mountain." ,null ,null ,null );
    private Location l5 = new Location ("Rainbow" ,"Wow! What a beautiful Rainbow! It almost looks like it is ending in the east. Look, there is an abandoned hut up north." ,null ,null ,null );
    private Location l6 = new Location ("Pot of Gold" ,"You have found the end of the Rainbow. What a beautiful site. Huh? Is that a pot of gold at the end?" ,"Gold" ,null ,null );
    private Location l7 = new Location ("Swimming in the lake" ,"Swimming in a river this time of year is madness. You can feel your fingers freezing in the cold. Make quick before the frostbite kicks in." ,null ,null ,null );
    private Location l8 = new Location ("River Bank" ,"Look at all the assorted rocks, maybe you should keep some for my mother. The river looks freezing! You can go for a swim eastwards if you dare." ,null ,null ,null );
    private Location l9 = new Location ("Big tree" ,"What a big pine tree. Look at the owl hooting from the top. It looks like there is a goat herd down south." ,null ,null ,null );
    private Location l10 = new Location ("River bank" ,"The River is up North. Look, there is some old fishing boats for you to ride back. Should spare you a finger or two." ,null ,null ,null );
    private Location l11 = new Location ("Cave" ,"Watch out for the bats. There is nothing in the cave but old bones... is that a human skull?" ,null ,null ,null );
    private Location l12 = new Location ("Bear prints" ,"Look at all the bear footprints in the snow. Should you take the risk and follow them south?" ,null ,null ,null );
    private Location l13 = new Location ("Goat herd" ,"What on earth happened here? A whole goat herd frozen to their bones. Would it be unthinkable to cook some goat meat?" ,"Goat" ,null ,null );
    private Location l14 = new Location ("Farm House" ,"An abandoned farm house. There is an old letter on a table reading: \"Dear Ma. It is cold I tell you. The goats are crying! I'm gonna kill them bigfoot and leprechauns. You gotta start believing me. Sincerely John.\"" ,null ,null ,null );
    private Location l15 = new Location ("Angry bear" ,"Quickly run away. A frustrating bear is eying you for supper." ,null ,null ,null );
    private Location l16 = new Location ("Frozen pond" ,"Look at all the claw marks on the ice. It seems like there is a lot of fish underneath the thick layer of ice. Maybe you should make a fire on top of the pond and make yourself a stew." ,"Fish" ,null ,null );
    private Location l17 = new Location ("Grizzly Bear" ,"The Grizzly Bear is enjoying the fish you gave him. He wouldn't bother you anymore." ,null ,"Oh no, there is an angry grizzly bear in the way! Make a run for it! Wait, he doesn't look that aggressive, maybe he is just hungry." ,"Fish" );
    private Location l18 = new Location ("Old Sign" ,"You can see the tip of an old wooden sign sticking out of the snow: \"Beware of them Bigfoot and them leprechauns; they are from hell I tell you. Farmer John.\"" ,null ,null ,null );
    private Location l19 = new Location ("Farmer John" ,"Look out! A man with a farmer's hat is lying behind some rocks with his shotgun ready to shoot... wait, he looks kind of still. What is it with everything being frozen! May he rest in peace." ,null ,null ,null );
    private Location l20 = new Location ("Little hut" ,"A little hut is standing underneath a little marble tree. It would have been nice to go warm up inside, but it seems like it is designed for some kind of midget." ,null ,null ,null );
    private Location l21 = new Location ("Footsteps" ,"There is a snowy path going south. Finally some footsteps, civilization must be near. Why are they so small though?" ,null ,null ,null );
    private Location l22 = new Location ("Throwing Rocks" ,"Someone is throwing rocks at you from the bushes. Make a run for it! It may be bandids!" ,null ,null ,null );
    private Location l23 = new Location ("Little sacrifice table" ,"This place will give anybody the jeepers. There is an little table with a sign on top: Only sacrifices from animals larger than pigeons allowed, or 9 gold coins. Get the hell away from here!" ,null ,null ,null );
    private Location l24 = new Location ("A leprechaun" ,"The little man in a green suite with a clover in his hair is counting the rainbow gold you gave him: \"Leave me alone you dirty Abominable snowman Food\"" ,null ,"What on earth. There is a little man in a green suite with a clover in his hair: \"Beware, give me gold or I'll curse you and your whole family, and then kill you for the gods.\" Better give the bugger some gold!" ,"Gold" );
    private Location l25 = new Location ("Bank" ,"What a strange site. There is a little place with a sign on: \"Bank: Give us your money!\"" ,null ,null ,null );
    private Location l26 = new Location ("Room 401" ,"Huh, an completely empty room. Not even a closet in sight. Very strange." ,null ,null ,null );
    private Location l27 = new Location ("Hotel" ,"Looks like you have found yourself at the backside of the hotel. Just a huge corridor going south and a backdoor going to the caves." ,null ,null ,null );
    private Location l28 = new Location ("Cave opening" ,"You can smell the stench of the cave east. It seems like there is some kind of hotel on the west. Maybe you should go inspect it." ,null ,null ,null );
    private Location l29 = new Location ("Cave" ,"The cave is dark and long. The stench is unbearable. It almost seems like someone or something is living here. Yes, there is a bed made of hiking clothes in one of the corners." ,null ,null ,null );
    private Location l30 = new Location ("Open terrain" ,"What a wonderful view. There is a cave to the west, woods to the east and a very steep slope to the south. Maybe it's time to show some skiing talent." ,null ,null ,null );
    private Location l31 = new Location ("Woods" ,"The smell of pine fills your lungs. It looks a bit dangerous to go deeper in the woods. Oh no, another grizzly bear is following you. Better run for it." ,null ,null ,null );
    private Location l32 = new Location ("Lobby" ,"You have found your way to the hotel's lobby. What a big place! Talk about luxury. It seems like more fun to come and sit in the lobby than to go outside and ski." ,null ,null ,null );
    private Location l33 = new Location ("Room 402" ,"The room is filled with posters of skiers and scantily clad women having fun in the snow. It seems like there is a door to the west." ,null ,null ,null );
    private Location l34 = new Location ("Corridor" ,"The corridor will give anybody the creeps. Is that picture on the wall following me? What kind of a hotel is this?" ,null ,null ,null );
    private Location l35 = new Location ("Porch" ,"Seems like I found the portch. Why is there a completely frozen swimming pool, who designed this place! Ah look, somebody forgot their skies outside." ,"Skies" ,null ,null );
    private Location l36 = new Location ("Lobby" ,"Wow the lobby is really big. Look at all these statues of skiers. Hello, is anybody home? Maybe you should make a fire in the fireplace and get warm." ,null ,null ,null );
    private Location l37 = new Location ("Room 403" ,"Ah not again! A body is lying on the floor. Seems like is must have happened some time ago. There's a note on the table: \"If you stumbled upon this letter, run for your life. The monster is coming!\"" ,null ,null ,null );
    private Location l38 = new Location ("Corridor" ,"Somebody must from the Middle Ages must have designed this corridor. Better get out of here!" ,null ,null ,null );
    private Location l39 = new Location ("Slope" ,"Looks like you are in for a ride. Take the skies you found and ski down the slope! Just make sure you don't enjoy yourself to much. Something can come around the corner at any time." ,null ,"Wait, you can't go down such a steep slope. I think you better find some skies if you want to continue South." ,"Skies" );
    private Location l40 = new Location ("Footprints" ,"There are some prints in the Snow. Probably from the Grizzly Bears. That's strange, it seems a lot larger than Bear prints." ,null ,null ,null );
    private Location l41 = new Location ("Downhill" ,"Riding down the slope up North was really fun. Maybe you should do it again. How stupid of you; there was a path down the hill all along. You can take the path if you want to go north again." ,null ,null ,null );
    private Location l42 = new Location ("Deep Forest" ,"A deep forest of Pine trees. Do you hear that, it sound like some monster is roaring? Grizzlies must get quite loud when it is mating season. There is a footpath going south." ,null ,null ,null );
    private Location l43 = new Location ("Pile of bones" ,"This place is getting too much. There is a huge pile of bones lying next to ski gear. It looks like some food was made here, you can still see some coals from a fire. Wonder what was on the menu?" ,null ,null ,null );
    private Location l44 = new Location ("Sign" ,"Another old rotten sign: \"Do not walk these parts, go North if you want to life. Bad things is lurking in these woods.\" Look there is a path to the east." ,null ,null ,null );
    private Location l45 = new Location ("Path to Big Foot" ,"What on earth is down South blocking the path! It looks like a huge ball of fur! Better watch out... I wouldn't dare going South if I were you." ,null ,null ,null );
    private Location l46 = new Location ("Big Foot" ,"\"Thank you, I gladly accept your frozen goat meat as a gift\", says a big wolf-bear like creature with a deep voice. \"You can come as supper tonight, I mean for supper\". Wow, the abominable snowman doesn't seem that scary after all." ,null ,"\"Hey you there! I am very hungry. Come close so we can have a little chat... do you know where I can find goat or any meat\" says a big wolf/bear like creature with a deep voice. Better make a run for it..." ,"Goat" );
    private Location l47 = new Location ("Civilisation" ,"Wow! It seems like you have found an actual ski resort. \"Welcome, why do you look like you have seen a ghost, Come inside and enjoy your holiday!\" Wow, looks like you finally made it! You are safe now. Better not go snooping up North anymore!" ,null ,null ,null );

    // Create exit objects
/*    private Exit e1 = new Exit ( Exit.UP,    l2 );
    private Exit e2 = new Exit ( Exit.DOWN,  l1 );
    private Exit e3 = new Exit ( Exit.NORTH, l3 );
    private Exit e4 = new Exit ( Exit.SOUTH, l2 );
    private Exit e5 = new Exit ( Exit.NORTH, l4 );
    private Exit e6 = new Exit ( Exit.SOUTH, l3 );
    private Exit e7 = new Exit ( Exit.EAST,  l5 );
    private Exit e8 = new Exit ( Exit.WEST,  l2 );
    private Exit e9 = new Exit ( Exit.EAST,  l6 );
    private Exit e10 = new Exit ( Exit.WEST, l5 );
    private Exit e11 = new Exit ( Exit.UP,   l7 );
    private Exit e12 = new Exit ( Exit.DOWN, l6 );
*/

    //create an game world from the defined Strings above
    public CreateGameWorld ()
    {

/*        l1.addExit ( e1 );
        l2.addExit ( e2 );
        l2.addExit ( e3 );
        l2.addExit ( e7 );
        l3.addExit ( e4 );
        l3.addExit ( e5 );
        l4.addExit ( e6 );
        l5.addExit ( e8 );
        l5.addExit ( e9 );
        l6.addExit ( e10 );
        l6.addExit ( e11 );
        l7.addExit ( e12 );*/

        //NORTH Locations:
        l4.addExit ( new Exit ( Exit.NORTH,    l1));
        l5.addExit ( new Exit ( Exit.NORTH,    l3));
        l8.addExit ( new Exit ( Exit.NORTH,    l4));
        l10.addExit ( new Exit ( Exit.NORTH,    l7));
        l12.addExit ( new Exit ( Exit.NORTH,    l8));
        l13.addExit ( new Exit ( Exit.NORTH,    l9));
        l14.addExit ( new Exit ( Exit.NORTH,    l10));
        l15.addExit ( new Exit ( Exit.NORTH,    l12));
        l17.addExit ( new Exit ( Exit.NORTH,    l2));
        l18.addExit ( new Exit ( Exit.NORTH,    l17));
        l20.addExit ( new Exit ( Exit.NORTH,    l18));
        l21.addExit ( new Exit ( Exit.NORTH,    l19));
        l23.addExit ( new Exit ( Exit.NORTH,    l20));
        l24.addExit ( new Exit ( Exit.NORTH,    l21));
        l25.addExit ( new Exit ( Exit.NORTH,    l22));
        l30.addExit ( new Exit ( Exit.NORTH,    l24));
        l34.addExit ( new Exit ( Exit.NORTH,    l27));
        l36.addExit ( new Exit ( Exit.NORTH,    l32));
        l38.addExit ( new Exit ( Exit.NORTH,    l34));
        l39.addExit ( new Exit ( Exit.NORTH,    l30));
        l41.addExit ( new Exit ( Exit.NORTH,    l39));
        l43.addExit ( new Exit ( Exit.NORTH,    l40));
        l44.addExit ( new Exit ( Exit.NORTH,    l41));
        l45.addExit ( new Exit ( Exit.NORTH,    l42));
        l46.addExit ( new Exit ( Exit.NORTH,    l45));
        l47.addExit ( new Exit ( Exit.NORTH,    l46));

        //EAST Locations
        l1.addExit ( new Exit ( Exit.EAST,    l2));
        l2.addExit ( new Exit ( Exit.EAST,    l3));
        l4.addExit ( new Exit ( Exit.EAST,    l17));
        l5.addExit ( new Exit ( Exit.EAST,    l6));
        l7.addExit ( new Exit ( Exit.EAST,    l8));
        l9.addExit ( new Exit ( Exit.EAST,    l10));
        l10.addExit ( new Exit ( Exit.EAST,    l11));
        l13.addExit ( new Exit ( Exit.EAST,    l14));
        l15.addExit ( new Exit ( Exit.EAST,    l16));
        l17.addExit ( new Exit ( Exit.EAST,    l5));
        l18.addExit ( new Exit ( Exit.EAST,    l19));
        l20.addExit ( new Exit ( Exit.EAST,    l21));
        l21.addExit ( new Exit ( Exit.EAST,    l22));
        l23.addExit ( new Exit ( Exit.EAST,    l24));
        l24.addExit ( new Exit ( Exit.EAST,    l25));
        l26.addExit ( new Exit ( Exit.EAST,    l27));
        l27.addExit ( new Exit ( Exit.EAST,    l28));
        l28.addExit ( new Exit ( Exit.EAST,    l29));
        l29.addExit ( new Exit ( Exit.EAST,    l30));
        l30.addExit ( new Exit ( Exit.EAST,    l31));
        l32.addExit ( new Exit ( Exit.EAST,    l33));
        l33.addExit ( new Exit ( Exit.EAST,    l34));
        l35.addExit ( new Exit ( Exit.EAST,    l36));
        l36.addExit ( new Exit ( Exit.EAST,    l37));
        l37.addExit ( new Exit ( Exit.EAST,    l38));
        l40.addExit ( new Exit ( Exit.EAST,    l41));
        l41.addExit ( new Exit ( Exit.EAST,    l42));
        l43.addExit ( new Exit ( Exit.EAST,    l44));
        l44.addExit ( new Exit ( Exit.EAST,    l45));

        //SOUTH LOCATION
        l1.addExit ( new Exit ( Exit.SOUTH,     l4));
        l2.addExit ( new Exit ( Exit.SOUTH,     l17));
        l3.addExit ( new Exit ( Exit.SOUTH,     l5));
        l4.addExit ( new Exit ( Exit.SOUTH,     l8));
        l7.addExit ( new Exit ( Exit.SOUTH,     l10));
        l8.addExit ( new Exit ( Exit.SOUTH,     l12));
        l9.addExit ( new Exit ( Exit.SOUTH,     l13));
        l10.addExit ( new Exit ( Exit.SOUTH,    l14));
        l12.addExit ( new Exit ( Exit.SOUTH,    l15));
        l17.addExit ( new Exit ( Exit.SOUTH,    l18));
        l18.addExit ( new Exit ( Exit.SOUTH,    l20));
        l19.addExit ( new Exit ( Exit.SOUTH,    l21));
        l20.addExit ( new Exit ( Exit.SOUTH,    l23));
        l21.addExit ( new Exit ( Exit.SOUTH,    l24));
        l22.addExit ( new Exit ( Exit.SOUTH,    l25));
        l24.addExit ( new Exit ( Exit.SOUTH,    l30));
        l27.addExit ( new Exit ( Exit.SOUTH,    l34));
        l30.addExit ( new Exit ( Exit.SOUTH,    l39));
        l32.addExit ( new Exit ( Exit.SOUTH,    l36));
        l34.addExit ( new Exit ( Exit.SOUTH,    l38));
        l39.addExit ( new Exit ( Exit.SOUTH,    l41));
        l40.addExit ( new Exit ( Exit.SOUTH,    l43));
        l41.addExit ( new Exit ( Exit.SOUTH,    l44));
        l42.addExit ( new Exit ( Exit.SOUTH,    l45));
        l45.addExit ( new Exit ( Exit.SOUTH,    l46));
        l46.addExit ( new Exit ( Exit.SOUTH,    l47));

        //WEST
        l2.addExit ( new Exit ( Exit.WEST,     l1));
        l3.addExit ( new Exit ( Exit.WEST,     l2));
        l5.addExit ( new Exit ( Exit.WEST,     l17));
        l6.addExit ( new Exit ( Exit.WEST,     l5));
        l8.addExit ( new Exit ( Exit.WEST,     l7));
        l10.addExit ( new Exit ( Exit.WEST,    l9));
        l11.addExit ( new Exit ( Exit.WEST,    l10));
        l14.addExit ( new Exit ( Exit.WEST,    l13));
        l16.addExit ( new Exit ( Exit.WEST,    l15));
        l17.addExit ( new Exit ( Exit.WEST,    l4));
        l19.addExit ( new Exit ( Exit.WEST,    l18));
        l21.addExit ( new Exit ( Exit.WEST,    l20));
        l22.addExit ( new Exit ( Exit.WEST,    l21));
        l24.addExit ( new Exit ( Exit.WEST,    l23));
        l25.addExit ( new Exit ( Exit.WEST,    l24));
        l27.addExit ( new Exit ( Exit.WEST,    l26));
        l28.addExit ( new Exit ( Exit.WEST,    l27));
        l29.addExit ( new Exit ( Exit.WEST,    l28));
        l30.addExit ( new Exit ( Exit.WEST,    l29));
        l31.addExit ( new Exit ( Exit.WEST,    l30));
        l33.addExit ( new Exit ( Exit.WEST,    l32));
        l34.addExit ( new Exit ( Exit.WEST,    l33));
        l36.addExit ( new Exit ( Exit.WEST,    l35));
        l37.addExit ( new Exit ( Exit.WEST,    l36));
        l38.addExit ( new Exit ( Exit.WEST,    l37));
        l41.addExit ( new Exit ( Exit.WEST,    l40));
        l42.addExit ( new Exit ( Exit.WEST,    l41));
        l44.addExit ( new Exit ( Exit.WEST,    l43));
        l45.addExit ( new Exit ( Exit.WEST,    l44));



        // Add locations/exits to our game lists
        //game.addLocation (l1);
        //game.addLocation (l2);
        //game.addLocation (l3);
        //game.addLocation (l4);

/*        game.addExit( e1 );
        game.addExit( e2 );
        game.addExit( e3 );
        game.addExit( e4 );
        game.addExit( e5 );
        game.addExit( e6 );
*/
        // Set current location
        game.setCurrentLocation ( l1 );

    }

    //return the created Game World
    public GameWorld getGameWorld()
    {
            return game;
    }

}

